Multiscale modulus filter bank and applications to pattern detection, clustering, classification and registration

ABSTRACT

A digital filter bank having a number J≧1 of stages is disclosed. For each integer j such that 1≦j≦J, the j-th stage includes a plurality of filtering units ( 20, 21 ) each receiving an input signal of the j-th stage. These filtering units include a low-pass filtering unit ( 20 ) using real filtering coefficients and at least one band-pass filtering unit ( 21 ) using complex filtering coefficients. Following each band-pass filtering unit of the j-th stage, a respective modulus processing unit ( 25 ) generates a processed real signal as a function of squared moduli of complex output values of the band-pass filtering unit. The input signal of the first stage is a digital signal supplied to the digital filter bank, while for 1&lt;j≦J, the input signal of the j-th stage includes the processed real signal generated by at least one modulus processing unit of the (j−1)-th stage.

BACKGROUND OF THE INVENTION

The present invention relates to digital signal processing. It providesa representation of digital signals which can be used in a variety ofapplications including pattern detection, clustering, classification andregistration.

For one dimensional or multidimensional signals, pattern detection,clustering, classification and registration problems require computing areliable distance that measures the similarity of signals despite theexistence of deformations.

For example, if two signals are translated, their Euclidean distance maybecome very large despite the fact that they are identical up to thistranslation. In images, such deformations include non-rigidtranslations, rotations, scaling (zoom in and out). For sounds, itincludes frequency transpositions and scaling.

In pattern detection applications, the potential location of a family ofpredefined patterns in a given signal, where they may appear withdeformations, is looked for. Detecting a human face in an image, despiteits variability due to different morphologies, pose and/or scaling, isan example of pattern detection problem which requires using a distancethat is not sensitive to such deformations.

A clustering problem in a signal involves segmentation to group signalpatches that are similar relatively to some distance. Texturesegmentation is an example of clustering problem which consists individing images into homogeneous texture regions. A clustering problemmay also apply to several signals which need to be grouped inhomogeneous classes.

A signal classification problem consists in finding the class to which asignal belongs. Classifying signals such as sounds, images, videosignals or medical signals requires some measurement of theirsimilarity. Signals that belong to the same class may differ by someimportant deformation. Such deformations should not alter theirsimilarity distance to classify them appropriately.

Pattern registration is about recovering a deformation that maps asignal onto another signal. In stereo images, this deformation, alsocalled disparity, carries depth information on the scene. In videos,such deformation provides the optical flow. In medical imaging,recovering this deformation allows registration of medical data toanalyze potential anomalies.

Standard distances such as the Euclidean distance do not measure thesimilarity of signals when these signals have undergone somedeformation, such as a translation. Indeed, the Euclidean distancebetween a signal and its translated version is often very large. Insteadof measuring a Euclidean distance between signals, one may apply such adistance to some signal representation that is constructed to preserveimportant signal information while being insensitive to other signalproperties. A major difficulty of signal detection, clustering,classification and registration then becomes to compute an appropriatesignal representation over which state of the art detection, clustering,classification and registration algorithms may be applied using state ofthe art distances such as Euclidean distances.

Spectrograms are widely used in the field of speech recognition. Theyinclude removing the complex phase of the Fourier transform of an inputaudio signal restricted by a time window function. Indeed, the complexphase of a Fourier transform can be interpreted as a translationparameter which is removed by the complex modulus operation. However,spectrograms are local Fourier transforms and are thus sensitive totranslations that are large relatively to the window size and to otherdeformations such as a signal scaling.

Multiscale transformations, such as wavelet transforms, have also beenused for pattern recognition. In particular, a so-called scalogram,obtained with a complex wavelet transform followed by a moduluscomputation is a representation which is used for pattern recognition inU.S. Pat. No. 7,171,269. However, at fine scales wavelet coefficientsare sensitive to translations and at coarse scales they do not carryenough information to discriminate signals.

In “A Steerable Complex Wavelet Construction and Its Applications toImage Denoising”, IEEE Transactions on Image Processing, Vol. 14, No. 7,July 2005, pp. 948-959, A. A. Bharath, et al. disclose a pyramidstructure for a filter bank used for sub-band decomposition. The basicpyramidal unit has an isotropic lowpass filter followed by adownsampler, and complex bandpass filters. The structure extends oversuccessive sub-band decomposition stages, the subsampled lowpasscomponent being passed to the following stages. A similar kind ofpyramid structure is presented in Portilla, et al., “A ParametricTexture Model Based on Joint Statistics of Complex Wavelet Coefficient”,International Journal of Computer Vision, Vol. 40, No. 1, October 2000,pp. 49-71.

Neural networks are also used in the context of pattern recognition.Multilayer neural networks define a cascade of linear and non-lineartransformations that can construct efficient signal representations forpattern recognition. In particular, the convolution networks disclosedin “Large-Scale Learning with SVM and Convolutional Nets for GenericObject Categorization” (Fu-Jie Huang and Yann LeCun, Proceedings of the2006 IEEE Computer Society Conference on Computer Vision and PatternRecognition, Vol. 1, p. 284-291) perform a cascade of convolutions withreal filters followed by some linear operations that typically includean absolute value and a sigmoid transformation. However, these neuralnetworks require a heavy training phase to adjust the filters to thetype of patterns encountered in the recognition task.

Accordingly, there is a need to find a generic signal representationthat builds strong invariants to various deformations. It is desirableto implement such signal representation using standard band-pass filterswhich do not depend upon the specific pattern properties, and to avoid alearning stage.

SUMMARY OF THE INVENTION

A digital filter bank having J stages is proposed, where J is an integergreater than one. For each integer j such that 1≦j≦J, the j-th stagecomprises:

-   -   a plurality of filtering units each receiving an input signal of        the j-th stage, including a low-pass filtering unit and at least        one band-pass filtering unit using complex filtering        coefficients; and    -   following each band-pass filtering unit of the j-th stage, a        respective modulus processing unit for generating a processed        real signal as a function of squared moduli of complex output        values of said band-pass filtering unit.

The input signal of the first stage is a digital signal supplied to thedigital filter bank, while for 1<j≦J, the input signal of the j-th stageincludes the processed real signal generated by at least one modulusprocessing unit of the (j−1)-th stage.

The filter bank converts the input digital signal into a multiscaleinvariant spectrum which can be made progressively more invariant to anyspecified group of deformations, for example translations, rotations,scaling, symmetries . . . . From this representation, a reliablesimilarity distance between signals can be computed by applying astandard distance such as a Euclidean distance. As opposed to state ofthe art multiscale algorithms, the multiscale invariant spectrum keepsthe relevant signal information at all frequencies.

In addition to pattern detection, clustering and classification,building a representation that is progressively invariant todeformations also provides an efficient representation forcoarse-to-fine recovery of deformations for signal registration.

The filter bank implements a filtering cascade with low-pass and complexband-pass filters. As opposed to state of the art filter bank algorithms(e.g. U.S. Pat. No. 5,526,299), convolutions are not computed on theoutput of a previous filter, but on the complex modulus of the previousfilter output. As opposed to spectrograms or scalograms, the complexmodulus is not applied once, at the output of the linear transform butin each stage of the filter bank, which builds stronger invariants. Asopposed to convolution neural networks, the present filter bank useslow-pass and band-pass filters that do not need to be optimizedaccording to a specific pattern recognition problem. It is implementedwith a complex modulus operation which removes the complex phase ofsignals at each stage. Furthermore, the modulus filter bank can bedesigned to build multiscale invariants to rotation, scaling or anyother type of group of deformation, by performing the convolution alongrotation, scaling or other type of group parameters.

In an embodiment, the input signal of the j-th stage for 1<j≦J includesthe processed real signal generated by each modulus processing unit ofthe (j−1)-th stage.

Advantageously, the low-pass filtering unit of the j-th stage (1≦j≦J) isarranged to compute a convolution of the input signal of the j-th stagewith real filtering coefficients. Implementation is then simpler thanwith complex low-pass filtering coefficients, and the Fourier behaviorof the low-pass component is improved.

For instance, the low-pass filtering unit in one or more stagescomprises a Gaussian filter, and each band-pass filtering unit in thesame stage comprises a respective Gabor filter.

In an embodiment, each of the filtering units in at least one of thestages includes a convolver for computing a convolution of the inputsignal of that stage with filtering coefficients of that filtering unit,output values of the filtering unit being produced as a sub-sampledsignal from the computed convolution. Sub-sampling advantageouslyreduces the size of the multiscale invariant spectrum. Still, it can bedispensed with in certain embodiments or in some of the J stages of thefilter bank. All the convolutions can be implemented with fastalgorithms.

In at least one of the stages, each modulus processing unit following arespective band-pass filtering unit using complex filtering coefficientsmay include: a complex-to-real transformer receiving the complex outputvalues of the respective band-pass filtering unit and producingrespective real values depending on the squared moduli of said complexoutput values; and a post-filter for low-pass filtering said real valuesand outputting the processed real signal for said modulus processingunit. The optional post-filter filters out high frequency signalcomponents introduced by the modulus operation.

In an embodiment, the input signal of the j-th stage for each integer jsuch that 1≦j≦J is defined over j variable indexes k₀, . . . , k_(j−1)in which k₀ is an index having d integer components, with d≧1 being thedimension of the digital signal supplied to the digital filter bank. For1≦l<J, k_(l) is an integer index associated with the plurality offiltering units of the l-th stage.

It is possible, in certain embodiments, that the filtering units of atleast one of the stages include at least one further band-pass filteringunit using real high-pass filtering coefficients, followed by aprocessing unit for generating a processed real signal as a function ofabsolute values of real output values of said further band-passfiltering unit. In such an embodiment, this processing unit may includea post-filter for low-pass filtering the absolute values of the realoutput values.

Typically, the input signal of the j-th stage for each integer j suchthat 1≦j≦J is defined over j variable indexes k₀, . . . , k_(j−1), wherek₀ is an index having d integer components, with d≧1 being the dimensionof the digital signal supplied to the digital filter bank, and for1≦l<j, k_(l) is an integer index associated with the plurality offiltering units of the l-th stage.

In the j-th stage (for j>1), each value of the integer index k_(j−1) hasa one-to-one correspondence with a respective filtering unit of the(j−1)-th stage. In a j-th stage (for j>2), the integer index k_(l) with1≦l≦j−2 may have a lower resolution with respect to the plurality offiltering units of the l-th stage if the filtering units of one or morestages between the l-th stage and the j-th stage perform filtering andsub-sampling along the variable index k_(l).

In a convenient implementation of the filter bank, each of the filteringunits of a j-th stage (1≦j≦J) is arranged to compute a convolution ofthe input signal of the j-th stage with respective filteringcoefficients along a single variable index k_(l), with 0≦l<j.

The low-pass filtering unit of a j-th stage may use real filteringcoefficients h₀ ^(j)(m), and each band-pass filtering unit of the j-thstage may use filtering coefficients h_(k) _(j) ^(j)(m) such that h_(k)_(j) ^(j)(m)=h^(j)(m)·exp(iξ_(k) _(j) ^(j)·m) for a frequency offsetvalue ξ_(k) _(j) ^(j), m being an index having a number d′ of integercomponents where d′ is a dimension of filtering of the input signal ofthe j-th stage, and h^(j)(m) designating coefficients of a low-passfilter. For example, the low-pass filtering unit implements a Gaussianfilter, and we can design the band-pass filtering units of the samestage as Gabor filters obtained from another Gaussian filter withrespective frequency offsets.

An embodiment of the digital filter bank provides, for an integer l suchthat 1≦l<J, that the filtering units of the l-th stage computeconvolutions of the input signal of the l-th stage with respectivefiltering coefficients along the variable index k₀. Among thosefiltering units of the l-th stage, a first band-pass filtering unit usescomplex filtering coefficients h₁ ^(l)(k₀) while at least one secondband-pass filtering unit designated by a respective integer index k,uses respective complex filtering coefficients h_(k) ^(l)(k₀)=G_(k)[h₁^(l)(k₀)], where G_(k) is an operator acting on d-dimensional discretesignals and belonging to a set of operators having a group structure.The mapping of the group structure can be such thatG_(k)·G_(k′)=G_(k+k′) for any given pair k, k′ of integer indexes. Inone or more following stages (j-th stage, with j>l), the band-passfiltering units can then compute respective convolutions of the inputsignal of such stage with respective filtering coefficients along thevariable index k_(l). This is one way of designing filter banks togenerate multiscale invariant spectra having strong invarianceproperties with respect to a family of deformations defined by the groupG={G_(k)}_(k). Such group may cover translations, rotations, dilations,symmetries etc., and their combinations.

Efficient similarity distances for pattern recognition are obtained byapplying standard distances (e.g. Euclidean distances) to the multiscaleinvariant spectrum obtained with the filter bank proposed here.Therefore, pattern detection, clustering, classification or registrationof one-dimensional and multidimensional signals can be carried out byapplying state of the art detection, clustering, classification orregistration processes to the multiscale invariant spectrum proposedhere. Other aspects of the invention relate to digital signal processingmethods making use of the filter bank.

A pattern detection method according to the invention comprises:

-   -   transforming a digital signal into a spectrum using a digital        filter bank as defined above; and    -   applying a pattern matching process to at least part of said        spectrum and to at least one pre-stored spectrum associated with        a respective pattern in order to detect said pattern in the        digital signal.

A clustering method according to the invention comprises:

-   -   transforming a digital signal into a spectrum using a digital        filter bank as defined above; and    -   applying a clustering process to at least part of said spectrum        to identify a plurality of clusters and associate each of a        plurality of patches of said spectrum with a respective one of        the clusters, wherein the patches correspond to different        regions of the spectrum or to at least part of different        component spectra if the digital signal is made of a plurality        of component signals transformed into respective component        spectra using the digital filter bank.

A pattern classification method according to the invention comprises:

-   -   transforming a digital signal into a spectrum using a digital        filter bank as defined above; and    -   applying a pattern classification process to at least part of        said spectrum and to pre-stored training parameters        corresponding to a plurality of pattern classes in order to        associate the digital signal with one of said pattern classes.

A pattern registration method according to the invention comprises:

-   -   transforming a first digital signal into a first spectrum and a        second digital signal into a second spectrum using digital        filter banks as defined above; and    -   applying a pattern registration process to at least part of said        first and second spectra in order to identify displacements        mapping the first signal onto the second signal.

Other features and advantages of the devices and methods disclosedherein will become apparent from the following description ofnon-limiting embodiments, with reference to the appended drawings.

BRIEF DESCRIPTION THE DRAWINGS

FIG. 1 is a flow chart illustrating the operation of an embodiment of adigital filter bank in accordance with the invention.

FIG. 2 is a block diagram of a stage of such digital filter bank.

FIGS. 3-5 are schematic diagrams of three examples of filter banksconfigured in accordance with the invention.

FIGS. 6-9 are block diagrams of digital signal processing apparatusesmaking use of the present filter bank applied to pattern detection,clustering, classification and registration, respectively.

DESCRIPTION OF EMBODIMENTS

FIG. 1 shows steps of a process of filtering digital signals using afiltering structure referred to as a multiscale modulus filter bank(MMFB). The input of the filter bank is d-dimensional digital signalS(n)=S(n₁, . . . , n_(d)), where d is a positive integer (d≧1). Thisdigital signal is available as a d-dimensional array of sample values.

In the following, for convenience and conciseness of the explanation,the terms “spatial variable” are used to designate the input signalvariable n, although that variable n may correspond to time or any othersignal parameter, as the reader will appreciate. Electrocardiograms(ECGs) or audio recordings are examples of one-dimensional signals (d=1)indexed by time. Still images are examples of two-dimensional signals(d=2), and video image sequences are examples of three-dimensionalsignals (d=3).

The process involves iterative filtering of signals, starting with thesignal S(n) supplied to the filter bank. The process is initialized instep 10 by storing the signal samples in an array I₀(k₀)=S(k₀) to formthe input signal for the first stage of the MMFB, where k₀=n=(n₁, . . ., n_(d)) is the d-dimensional spatial index defined on the sampling gridof the input signal S. In step 10, the iteration counter j (or stagecounter) is also set to 1.

In each iteration j, the input signal of the j-th stage, notedI_(j−1)(k₀, . . . , k_(j−1)), is filtered in step 11 by a so-calledmodulus filter bank (MFB) having a number K_(j) of digital filteringunits operating in parallel, where K_(j) is a number greater than onewhich may vary from one stage to another. The output of the MFB in thej-th iteration is noted I_(j)(k₀, . . . , k_(j−1), k_(j)) where k_(j) isan integer variable index in the range of 0 to K_(j−1). For each valueof the index k_(j), the signal I_(j)(k₀, . . . , k_(j−1), k_(j)) as afunction of the other variable indexes k₀, . . . , k_(j−1) is the outputsignal of a respective one of the filtering units of the j-th stage. Theset of those signals for j=0, 1, . . . , K_(j)−1 referred to as aninvariant spectrum at scale j.

After the MFB filtering 11, the process checks in step 12 if the numberof iterations j has reached the maximum number noted J set by the useror the designer of the MMFB, with J≧2. If j<J, the counter j isincremented by 1 in step 13 and the next iteration of the filtering step11 is performed, with an input signal equal to the output of theprevious stage of the MMFB. When j=J in step 12, the iterations stop andthe multiscale invariant spectrum consisting of the signals I₀(k₀),I₁(k₀, k₁), . . . , I_(J)(k₀, k₁, . . . , k _(J)) can be output in step14.

The multiscale invariant spectrum is thus made of the concatenation ofthe invariant spectra at the different scales j=0, 1, . . . , J. It willbe appreciated, though, that depending on the application, it may beenough to use only part of the multiscale invariant spectrum, e.g. someof the scales j only, as the output of the MMFB.

FIG. 2 indicates a general layout of the j-th filtering stage of theMMFB (1≦j≦J). The K_(j) filtering units include a low-pass filteringunit 20 and K_(j)−1 band-pass filtering units 21. The low-pass filteringunit 20 preferably uses real filtering coefficients. In this case, itoutputs a real signal (indicated by a thin arrow in FIG. 2) as alow-pass signal I_(j)(k₀, . . . , k_(j−1), 0) included in the invariantspectrum for the j-th scale, i.e. for the variable index k_(j)=0. Eachband-pass filtering unit 21 uses complex filtering coefficients andoutputs a complex signal (indicated by a thick arrow in FIG. 2).

Each filtering unit 20, 21 of the j-th stage includes a convolver 22filtering digitally the input signal I_(j−1)(k₀, . . . , k_(j−1)) withan array of filtering coefficients which are real numbers H₀ ^(j) in thecase of the low-pass filtering unit 20 and complex numbers H_(k) _(j)^(j) (k_(j)≧1) in the case of the band-pass filtering unit(s) 21.Optionally, the output of each convolver 22 of the stage is sub-sampled,which is illustrated in FIG. 2 by a downsampling unit 23 downstream ofthe convolver 22. In practice, when sub-sampling is used, the convolver22 may output directly the signal at the desired sampling rate. Forexample, when the sub-sampling factor is 2, the sampling rate at theoutput of the convolver 22 may be half that at the input.

The complex signals Î_(j)(k₀, . . . , k_(j−1), k_(j)) output by theband-pass filtering units 21 (k_(j)≧1) are transformed into real signalsby respective modulus processing units 25. Each modulus processing unit25 includes a complex-to-real transformer 26 which receives the outputvalues of the respective filtering unit 21. For each received complexvalue Î_(j)(k₀, . . . , k_(j−1), k_(j))=z=z₁+i·z₂ (where i²=−1), thecomplex-to-real transformer 26 computes a real value r depending on thesquared modulus |z|²=z₁ ²+z₂ ² of the received complex value: r=ρ(|z²|).

A typical choice for the function ρ is the square root, in which casethe complex-to-real transformer 26 computes the modulus of z. In apractical implementation, the square root function may be approximatedfor computation simplicity. It is also possible to combine the squareroot function with a gain saturation operator such as a sigmoidfunction, e.g. ρ(x)=tan⁻¹(√{square root over (x)}).

Optionally, each modulus processing unit 25 of the j-th stage includes apost-filter 27 downstream of the complex-to-real transformer 26. Thepost-filter 27 is implemented as a low-pass filter, e.g. a Gaussianfilter, to remove high frequency components introduced by the modulusoperation in the transformer 26. If the output is further subdecomposedin a (j+1)-th stage, for computational efficiency, the post-filter 27can also be integrated in the filters H_(k) _(j+1) ^(j+1) of the(j+1)-th stage by incorporating the low-pass filtering in these filters.

Each modulus processing unit 25 of the j-th stage outputs a real signalas a respective band-pass signal I_(j)(k₀, . . . , k_(j−1), k_(j)) ofthe j-th stage for the variable index k_(j)=1, 2, . . . , K_(j)−1.

State of the art filtering algorithms can be used for fastimplementation in the convolvers 22. In particular, separablemultidimensional filters H_(k) _(j) ^(j) are implemented with separableconvolutions.

For k_(j)=0, the convolution output on the sub-sampled grid is the nextspectrum signal I_(j)(k₀, . . . , k_(j−1), 0) which, for example, may beexpressed as follows:

$\begin{matrix}{{I_{j}\left( {k_{0},\ldots\;,k_{j - 1},0} \right)} = {{I_{j - 1}*{H_{0}^{j}\left( {k_{0},\ldots\;,k_{j - 1}} \right)}} = {\sum\limits_{k^{\prime} = {({k_{0}^{\prime},\ldots\;,\; k_{j - 1}^{\prime}})}}^{\;}{{I_{j - 1}\left( {k_{0}^{\prime},\ldots\;,k_{j - 1}^{\prime}} \right)} \cdot {H_{0}^{j}\left( {{k_{0} - k_{0}^{\prime}},\ldots\;,{k_{j - 1} - k_{j - 1}^{\prime}}} \right)}}}}} & (1)\end{matrix}$

For 0<k_(j)<K_(j), the convolution output Î_(j)(k₀, . . . , k_(j−1),k_(j)) on the sub-sampled grid is, for example:

$\begin{matrix}{{{\hat{I}}_{j}\left( {k_{0},\ldots\;,k_{j - 1},k_{j}} \right)} = {{I_{j - 1}*{H_{k_{j}}^{j}\left( {k_{0},\ldots\;,k_{j - 1}} \right)}} = {\sum\limits_{k^{\prime} = {({k_{0}^{\prime},\ldots\;,\; k_{j - 1}^{\prime}})}}^{\;}{{I_{j - 1}\left( {k_{0}^{\prime},\ldots\;,k_{j - 1}^{\prime}} \right)} \cdot {H_{k_{j}}^{j}\left( {{k_{0} - k_{0}^{\prime}},\ldots\;,{k_{j - 1} - k_{j - 1}^{\prime}}} \right)}}}}} & (2)\end{matrix}$

In a preferred embodiment, the filtering units 20, 21 of a given stage jperform convolutions and sub-sampling along a single variable indexk_(l) with 0≦l<j. In other words, all the filters H_(k) _(j) ^(j) in theconvolvers 22 (0≦k_(j)<K_(j)) filter I_(j−1)(k₀, . . . , k_(j−1)) alongthe index k_(l). If δ(k) designates the Kronecker delta function suchthat δ(k)=1 if k=0 and δ(k)=0 if k≠0, the separable filters are definedby:H _(k) _(j) ^(j)(k ₀ , . . . , k _(l−1) , k _(l) , k _(l+1) , . . . , k_(j−1))=δ(k ₀) . . . , δ(k _(l−1))·h_(k) _(j) ^(j)(k _(l))·δ(k _(l+1)) .. . δ(k _(j−1))   (3)where the coefficients h_(k) _(j) ^(j)(k_(l)) are made of real numbersin the low-pass filtering unit 20 and of complex numbers in theband-pass filtering units 21. If l=0, namely if the signal is beingfiltered along the spatial index k₀, the notation h_(k) _(j) (k_(l)) isfor a d-dimensional vector of real or complex coefficients. If l≠0, itstands for one real or complex coefficient.

Filtering in the convolvers 22 is thus implemented only along thevariable k_(l):

$\begin{matrix}{{I_{j}\left( {k_{0},\ldots\;,k_{l},\ldots\;,k_{j}} \right)} = {\sum\limits_{k^{\prime}}^{\;}{{I_{j - 1}\left( {k_{0},\ldots\;,k_{l - 1},k^{\prime},k_{l + 1},\ldots\;,k_{j - 1}} \right)} \cdot {h_{k_{j}}^{j}\left( {k_{l} - k^{\prime}} \right)}}}} & (4)\end{matrix}$and it may be computed over values of k_(l) that are sub-sampledrelatively to the sampling grid of I_(j−1).

The filter h₀ ^(j) is a real low-pass filter whereas the filters h_(k)_(j) ^(j) for 1≦k_(j)<K_(j) are complex band-pass filters. A complexband-pass filter h_(k) ^(j)((m) can be obtained by multiplying thecoefficients of a low-pass filter h^(j)(m) by a complex exponentialexp(iξ_(k) ^(j)·m) of frequency ξ_(k) ^(j)=(ξ_(k,1) ^(j), . . . ,ξ_(k,d′) ^(j)) with d′ being the dimension of the filtering and ξ_(k)^(j)·m designating the inner product ξ_(k) ^(j)·m=ξ_(k,1) ^(j)·m₁+ . . .+ξ_(k,d′) ^(j)·m_(d′). When separable filters are used, we have d′=d ifthe signal is filtered along the spatial index k₀ (l=0). The complexexponential shifts the transfer function ĥ^(j)(ω) of the low-pass filterby a predetermined frequency offset value ξ_(k) ^(j). The transferfunction ĥ_(k) ^(j)(ω)=ĥ^(j)(ω−ξ_(k) ^(j)) of this complex band-passfilter is thus non-negligible only in the neighborhood of the frequencyξ_(k) ^(j).

In the particular case where the non-zero frequency coordinates ξ_(k)_(j) _(,p) ^(j) of ξ_(k) _(j) ^(j) (1≦p≦d′) are equal to π or −π, thecomplex exponential exp(iξ_(k) _(j) ^(j)·m) is degenerated into a realnumber since the components of m are integers. In this case, theband-pass filtering is indeed a high-pass filtering in view of thesampling frequency of the signal. If h^(j)(m) is a real low-pass filter,then the convolver 22 carrying out the high-pass filtering with thetransfer function ĥ_(k) _(j) ^(j)(ω)=ĥ^(j)(ω−ξ_(k) _(j) ^(j)) belongs toa further band-pass filtering unit using real high-pass filteringcoefficients, and the following processing unit 25 generates a processedreal signal I_(j)(k₀, . . . , k_(j−1), k_(j)) as a function of theabsolute values of the real output values from the further band-passfiltering unit. The absolute values can be computed in the transformer26 by dropping the sign bit and they are optionally low-pass filtered ina post-filter 27.

A limit case of the MMFB occurs where any band-pass filtering unit inone or more stages j is a real high-pass filter generated as mentionedabove. In other words, the j-th stage has:

-   -   a plurality of filtering units each receiving the input signal        of the j-th stage, including a low-pass filtering unit 20 using        real filtering coefficients h₀ ^(j)(m) and at least one        band-pass filtering unit 21 also using real filtering        coefficients h_(k) ^(j)(m) which can be chosen such that h_(k)        _(j) ^(j)(m)=h^(j)(m)·exp(iξ_(k) _(j) ^(j)·m) for a frequency        offset value ξ_(k) _(j) ^(j), m being an index having a number        d′ of integer components where d′ is a dimension of filtering of        the input signal of the j-th stage, where h^(j)(m) designates        coefficients of a real low-pass filter, wherein each component        of the frequency offset value ξ_(k) _(j) ^(j) is ±π; and    -   following each band-pass filtering unit of the j-th stage, a        respective modulus processing unit 25 for generating a processed        real signal as a function of absolute values of complex output        values of said band-pass filtering unit, whereby for 1<j≦J, the        input signal of the j-th stage includes the processed real        signal generated by each modulus processing unit of the (j−1)-th        stage.

This limit case may not be optimal in terms of invariance properties,but it has an advantage of having a simpler implementation than withcomplex band-pass filters.

In an exemplary embodiment, h₀ ^(j) is a normalized Gaussian window ofvariance σ₀ ²:

$\begin{matrix}{{h_{0}^{j}(m)} = {\lambda \cdot {\exp\left( {- \frac{\sum\limits_{p = 1}^{d^{\prime}}m_{p}^{2}}{2\sigma_{0}^{2}}} \right)}}} & (5)\end{matrix}$where λ is adjusted so that ∥h₀ ^(j)∥=1, and h^(j) is also a normalizedGaussian window which may be the same as or different from h₀ ^(j). Theresulting filters h_(k) _(j) ^(j) are so-called Gabor filters.Typically, h^(j) has a larger variance σ² than h₀ ^(j) (σ²≧σ₀ ²).

The low-pass post-filter 27 of a modulus processing unit 25 computes aconvolution along the same variable index k_(l) as the precedingconvolver 22, with an impulse response {tilde over (h)}(k_(l)), i.e.:

$\begin{matrix}{{I_{j}\left( {k_{0},\ldots\;,k_{j - 1},k_{j}} \right)} = {\sum\limits_{k^{\prime}}^{\;}{{\rho\left( {{{\hat{I}}_{j}\left( {k_{0},\ldots\;,k_{l - 1},k^{\prime},k_{l + 1},\ldots\;,k_{j}} \right)}}^{2} \right)} \cdot {\overset{\sim}{h}\left( {k_{l} - k^{\prime}} \right)}}}} & (6)\end{matrix}$

The low-pass filter {tilde over (h)}(k_(l)) is normalized so that

${\sum\limits_{k}^{\;}{\overset{\sim}{h}(k)}} = 1.$For example, the low-pass filter {tilde over (h)}(k_(l)) can be alow-pass Gaussian filter.

In the exemplary embodiments illustrated in FIGS. 3 and 4, the MMFBcomputes multiscale invariant spectra relatively to spatial translationonly. In this case, for all iterations j, the filtering takes placealong k₀ (l=0). Hence, the filters H_(k) _(j) ^(j) filter the inputsignal I_(j−1)(k₀, . . . , k_(j−1)) only along the spatial variable k₀with a filter h_(k) _(j) ^(j) which is called a spatial filter.

FIG. 3 illustrates a simple embodiment of a MMFB having J=2 stages, inwhich the input signal S(n) is of dimension d=1 and K_(j)=2 filters areused in each stage j. The first stage 31 (j=1) transforms the inputsignal I₀(k₀)=S(n) of N samples into two signals I₁(k₀, 0) and I₁(k₀, 1)of size N with a low-pass filter 33 having real coefficients h₀ ¹ and aband-pass filter 34 having complex coefficients h₁ ¹ which convolveI₀(k₀) along the spatial parameter k₀, with no sub-sampling. In theexample, the modulus processing unit 35 computes the modulus of thecomplex output of the band-pass filter 34, i.e. using a gain functionρ(x)=√{square root over (x)}, and it convolves this modulus with aGaussian post-filter {tilde over (h)}(k₀) of variance ⅓. A possibilityfor the first stage 31 is to use a Gaussian low-pass filter 33 withσ=1/√{square root over (3)} and a Gabor band-pass filter 34 withσ=2/√{square root over (3)} and ξ₁ ¹=3π/4.

In the next stage 32 (j=2), a low-pass filtering unit 36 and a band-passfiltering unit 37 both receive the input signal I₁(k₀, k₁). In therepresentation of FIG. 3, each filtering unit 36, 37 is depicted as aparallel arrangement of two sub-units which receive the respectivecomponents I₁(k₀, 0) and I₁(k₀, 1) of the input signal. The twosub-units 36 use real coefficients h₀ ² and output the real low-passsignals I₂(k₀, 0, 0) and I₂(k₀, 1, 0) of size N/2 if a sub-samplingfactor of 2 is used. They may be implemented as Gaussian low-passfilters with σ=1. The two sub-units 37 use complex coefficients h₁ ² andoutput complex signals Î₂(k₀, 0, 1) and Î₂(k₀, 1, 1) of size N/2 if asub-sampling factor of 2 is used. They may be implemented as Gaborband-pass filters with σ=√{square root over (5)} and ξ₁ ²=2π/5. Thesecond stage 32 further includes two identical modulus processing units38 which perform the same operations as the modulus processing unit 35of the first stage 31 downstream of the band-pass filtering sub-units 37to output the respective real band-pass signals I₂(k₀, 0, 1) and I₂(k₀,1, 1).

To compute an invariant spectrum at a larger scale if J>2, i.e. tocompute I_(j)(k₀, . . . , k_(j−1), k_(j)) from I_(j−1)(k₀, . . . ,k_(j−1)) with j>2, the above-described binary filter bank tree iscontinued, with the same filters h₀ ^(j)=h₀ ² and h₁ ^(j)=h₁ ² togetherwith sub-sampling by a factor 2 and a modulus processing unit at theoutput of each complex band-pass filtering unit h₁ ². For each integer lsuch that 0<l≦j, the spectrum I_(j)(k₀, . . . , k_(j−1), k_(j)) is thendefined for k_(l)=0 or k_(l)=1 and includes N/2^(j−1) samples along k₀.

Another exemplary embodiment suitable for analyzing images (d=2) isshown in FIG. 4. In this example, there are J=2 stages and K_(j)=5filters per stage. The first stage 41 of the MMFB (j=1) transforms theinput signal I₀(k₀)=S(n)=S(n₁, n₂) of N pixels into five signals I₁(k₀,k₁) of size N for 0≦k₁≦4, with a low-pass filter 43 having realcoefficients h₀ ¹ and four band-pass filters 44-47 having complexcoefficients h₁ ¹, h₂ ¹, h₃ ¹, h₄ ¹ which convolve I₀(k₀) along thespatial parameter k₀, without sub-sampling. Downstream of each band-passfilter h_(k) ₁ ¹ with k₁>0, a respective modulus processing unit 48computes the modulus of the complex output of that band-pass filter,i.e. using a gain function ρ(x)=√{square root over (x)}, and itconvolves this modulus with a post-filter {tilde over (h)}(k₀) which canbe chosen to be a Gaussian of variance ⅓. A possibility for the firststage 41 is to use a two-dimensional Gaussian low-pass filter 43 havingcoefficients h₀ ¹(n) with σ=1/√{square root over (3)} and four Gaborband-pass filters 44-47 defined by h_(k) ¹(n)=h¹(n)·exp(iξ_(k)·n) whereh¹(n) is a Gaussian with σ=2/√{square root over (3)} and ξ_(k)=ξ·(cosθ_(k), sin θ_(k)), θ_(k)=kπ/4 for 1≦k≦4, and ξ=3π4.

In the next stage 42 (j=2), a low-pass filtering unit 49 and K₂−1=4band-pass filtering units 50-53 all receive the input signal I₁(k₀, k₁).In the representation of FIG. 4, each filtering unit 49-53 is depictedas a parallel arrangement of K₁=5 sub-units which receive the respectivecomponents I₁(k₀, k₁) of the input signal for k₁=0, 1, 2, 3 and 4. Thefive sub-units 49 use real coefficients h₀ ² and output the reallow-pass signals I₂(k₀, k₁) for 0≦k₁≦4, of size N/4 if a sub-samplingfactor of 2 is used along each spatial direction. They may beimplemented as Gaussian low-pass filters with σ=1. For each integer k₁such that 1≦k₁≦4, five filtering sub-units 50-53 convolve I₁(k₀, k₁)with complex coefficients h_(k) ₁ ² and output complex signals Î₂(k₀,k₁, 1), Î₂(k₀, k₁, 2), Î₂(k₀, k₁, 3) and Î₂ (k₀, k₁, 4) of size N/4 if asub-sampling factor of 2 is used along each spatial direction. They maybe implemented as Gabor band-pass filters defined by h_(k)²(n)=h²(n)·exp(iξ_(k)·n) with ξ=√{square root over (5)}, ξ_(k)=ξ·(cosθ_(k), sin θ_(k)), θ_(k)=kπ/4 for 1≦k≦4, and ξ=π/2. the second stage 42further includes identical modulus processing units 54 which perform thesame operations as the modulus processing units 48 of the first stage 41downstream of the band-pass filtering sub-units 50-53 to output therespective real band-pass signals I₂(k₀, k₁, k₂) for 0≦k₁≦4 and 1≦k₂≦4.

To compute an invariant spectrum at a larger scale if J>2, i.e. tocompute I_(j)(k₀, . . . , k_(j−1), k_(j)) from I_(j−1)(k₀, k_(j−1)) withj>2, the above-described filter bank tree is continued, with the samefilters h_(k) ^(j)=h_(k) ² for 0≦k≦4 together with sub-sampling by afactor 2 along each spatial direction and a modulus processing unit atthe output of each complex band-pass filtering unit h_(k) ² for k>0. Foreach integer l such that 0<l≦j, the spectrum I_(j)(k₀, . . . , k_(j−1),k_(j)) is then defined for k_(l)=0, 1, 2, 3 or 4 and includesN/2^(2(j−1)) pixels along k₀.

Other embodiments of the MMFB compute spectra that are invariantrelatively to translation but also relatively to other groups ofdeformations.

We denote by G={G_(k)}_(k) a group of operators which act on discretesignals, with G_(k)·G_(k′)G_(k+k′). To compute multiscale invariantspectra relatively to such a group in an exemplary embodiment, at aniteration j=l, the spectrum I_(l) is computed with K_(l)−1 complexband-pass spatial filters h_(k) ^(l)(k₀) which are synthesized bytransforming a single complex band-pass filter h₁ ^(l)(k₀) withrespective operators G_(k) of the group G:h _(k) ^(l)(k ₀)=G _(k) [h ₁ ^(l)(k₀)]  (7)

In dimension d=2, an operator G_(k) of the group may correspond to arotation by an angle θ_(k)=π(k−1)/(K_(l)−1) for 1≦k<K_(l). For n=(n₁,n₂), we have G_(k)[h₁ ^(l)(n)]=h₁ ^(i)(R_(k)[n]) where R_(k)[n₁,n₂]=(n₁·cos θ_(k)−n₂·sin θ_(k), n₁·sin θ_(k)+n₂·cos θ_(k)) is a rotationby an angle θ_(k).

For example, if h₁ ^(l)(k₀) is a Gabor filter modulated at a frequencyξ₁=(ξ, 0), then h_(k) ^(l)(k₀) is a Gabor filter whose center frequencyξ_(k) is rotated by −θ_(k) in the frequency plane: ξ_(k)=ξ·(cos θ_(k),−sin θ_(k)).

An operator G_(k) of the group may also correspond to a dilation by afactor a^(k) where a is a scaling parameter greater than one and 1≦k<K.In this case, h_(k) ^(l)=G_(k)[h₁ ^(l)] is dilated by a^(k): h_(k)^(l)(n)=λ_(k)h₁ ^(l)(a^(−k)n), where λ_(k) is adjusted so that ∥h_(k)^(l)∥=1.

Invariants may also be computed relatively to multidimensional groupssuch as the product of rotations and dilations. In the latter case theindex of the group operators is k=(r, s) is multidimensional andspecifies an operator G_(k) which is the composition of a rotation by anangle O_(r) and a scaling by a factor a^(s). Any other multidimensionalgroup of deformation operators G_(k) may be used to select filters inthe modulus filter bank, to compute a multiscale invariant spectrumrelatively to such group.

To compute a multiscale invariant relatively to the group G over qscales, in the next q stages, i.e. for j going from l+1 to l+q, thefiltering of I_(j−1)(k₀, . . . , k_(j−1)) is performed along thevariable k_(l) of the last spatial filtering index.

In an embodiment, the output h₀ ^(l)(k₀) of the spatial low-pass filterof the l-th stage is not retransformed up to the (l+q)-th stage. Forl<j≦l+q, we can then set:I _(j)(k ₀ , . . . , k _(l−1), 0, . . . , 0)=I _(j)(k ₀ , . . . , k_(l−1), 0)   (8)

The output of the spatial band-pass filters is retransformed with aconvolution along k_(l) and, optionally, a sub-sampling along k_(l)prior to the modulus processing:

$\begin{matrix}{{I_{j}\left( {k_{0},\ldots\;,k_{l},k_{j}} \right)} = {\sum\limits_{k^{\prime} \neq 0}^{\;}{{I_{j - 1}\left( {k_{0},\ldots\;,k_{l - 1},k^{\prime},k_{l + 1},\ldots\;,k_{j - 1}} \right)} \cdot {h_{k_{j}}^{j}\left( {k_{l} - k^{\prime}} \right)}}}} & (9)\end{matrix}$

In an exemplary embodiment, for l<j≦l+q, the filter h₀ ^(j)(k_(l)) is aGaussian filter and the filters h_(k) ^(j)(k_(l)) are Gabor complexband-pass filters for k>0.

At the next iteration j=l+q+1, a spatial filtering may again be appliedwith filters derived according to (7) from a filter h₁ ^(l+q+1)(k₀)operators G_(k) of a suitable group G′ (which may be the same as ordifferent from G). The invariance relatively to the group G′ is obtainedagain with q′ filtering and modulus operations performed along the indexl+q+1 of the last spatial filtering.

FIG. 5 illustrates an embodiment in which l=1 and q=2 (J=l+q=3). Theinput signal I₀(k₀)=S(n) of size N in dimension d is decomposed in thefirst stage 60 (j=1) with K₁=5 spatial filtering units 63-67 whichconvolve the input signal I₀(k₀) with respective coefficients h_(k) ₁¹(n) for 0≦k₁<5. The low-pass filtering unit 63 may be implemented as aGaussian low-pass filter. It uses real coefficients h₀ ¹(n) and outputsthe real low-pass signal I₁(k₀, 0) which will be kept all the way to thelast stage l−q according to (8), namely I₁(k₀, 0)=I₂(k₀, 0, 0)=I₃(k₀, 0,0, 0).

The coefficients h_(k) ₁ ¹(n) of the complex band-pass filter units65-67 (2≦k₁<5) may be obtained by rotating or scaling those h₁ ¹(n) ofthe complex band-pass filter unit 64 using operators G_(k) of a group:h_(k) ₁ ¹(n)=G_(k) ₁ [h₁ ¹(n)]. In the illustrated embodiment, theoutputs of the spatial filtering units 63-67 of the first stage are eachof size N/2^(d), i.e. a sub-sampling factor of 2 is used along eachspatial direction. The complex band-pass filter unit 64 from which theother filters are derived may comprise a Gabor filter having a biggervariance than the Gaussian filter of the low-pass filtering unit 63.Downstream of each band-pass filter h_(k) ₁ ¹ with k₁>0, a respectivemodulus processing unit 68 computes the squared modulus of the complexoutput of that band-pass filter, applies a gain function ρ(x), andoptionally convolves the result with a post-filter, to obtain the realband-pass signals I₁(k₀, k₁) for 1≦k₁<5.

These spectrum signals I₁(k₀, k₁) are retransformed by the filteringunits of the second stage 61 (j=2), where K₂=2 in the example shown inFIG. 5. They include a low-pass filtering unit 69 using realcoefficients h₀ ²(n) and a band-pass filtering unit 70 using complexcoefficients h₁ ²(n). Both units 69, 70 perform a convolution and asub-sampling by 2 along the index k₁ of the previous spatial filtering.The low-pass unit 69 yields the sub-sampled real low-pass signal I₂(k₀,k₁, 0) and the band-pass unit 70 yields the sub-sampled complexband-pass signal Î₂(k₀, k₁, 1), the range for k₁ being {1, 2}, i.e.reduced from the original range {1, 2, 3, 4} by the sub-sampling factorof 2. The complex band-pass filtering unit 70 is followed by a modulusprocessing unit 71 which yields the two components of the real band-passsignal I₂(k₀, k₁, 1).

The output signals I₂(k₀, k₁, k₂) of the second stage 61 still haveN/2^(d) samples along k₀ because the convolution and sub-sampling areperformed along the variable index k₁. In this illustration, theconvolution is over 4 samples corresponding to k₁=1, 2, 3, 4, and thesub-sampling yields values only for k₁=1, 2.

In the third stage 62 (j=2), a low-pass filtering unit 72 and aband-pass filtering unit 73 both receive the input signal I₂(k₀, k₁,k₂). In the representation of FIG. 5, each filtering unit 72-73 isdepicted as a parallel arrangement of two sub-units which receive therespective components I₂(k₀, k₁, k₂) of the input signal for k₂=1 and 2.The two sub-units 72 use real coefficients h₀ ³(n) and output the reallow-pass signals I₃(k₀, k₁, k₂, 0) with a further sub-sampling factor of2 along the variable index k₁. The two sub-units 73 convolve I₂(k₀, k₁,k₂) with complex coefficients h₁ ³(n) and output complex signals I₃(k₀,k₁, k₂, 1) with the further sub-sampling factor of 2 along the variableindex k₁. The third stage 62 further includes two identical modulusprocessing units 74 which perform the same operations as the modulusprocessing unit 71 of the previous stage 61 downstream of the band-passfiltering sub-units 73 to output the real band-pass signal I₃(k₀, k₁,k₂, 1)

A multiscale spectrum may be computed for j>3 by first performing againa spatial transformation, for example with the same K_(l)−1 spatialband-pass filters as in the first stage, and then performing two moreiterations of modulus filtering along the index of the last spatialfiltering.

An MMFB as exemplified in FIGS. 1-5 can be implemented using dedicatedhardware logic or programmable hardware logic such as field-programmablegate arrays (FPGA). In addition, it lends itself to softwareimplementations using computer programs written in any suitable languagefor running on general-purpose computers, digital signal processors(DSP) or application-specific integrated circuits (ASIC).

The MMFB has a wide range of applications, of which some are discussedmore particularly below.

FIG. 6 shows an exemplary configuration of a pattern detection apparatuswhich processes a d-dimensional input signal S(n). The pattern detectionapparatus detects the location of a potential family of patterns in S(n)and outputs a pattern location array which specifies the position ofeach type of pattern in S(n). Face detection in images is an example ofpattern detection.

The input signal S(n) is processed by the multiscale modulus filter bankunit 80, which determines a multiscale invariant spectrum{I_(j)}_(1≦j≦J) as described above. The matching unit 81 takes in inputat least one scale of this multiscale invariant spectrum and detects thelocation of a family of P potential patterns in the signal S(n). Anystate of the art pattern detection algorithm may be used in unit 81.

In an exemplary embodiment, each of the P patterns is represented by anormalized signal S_(p) for 1≦p≦P. The pattern detection is performed atthe coarsest scale, i.e. based on the invariant spectrum I _(J) at theindex j=J. For each p, the invariant spectrum I_(p,J) of S_(p) ispre-computed at the coarsest scale index J with the MMFB and stored in amemory 82.

The pattern detection is implemented by unit 81 with a match filteringprocedure which finds the potential locations of different invariantspectra {I_(p,J)(k₀, k₁, . . . , k_(J))}_(p) in the signal invariantspectrum I_(J)(k₀, k₁, . . . , k_(J)) of the input signal S(n). Wedenote by T_(τ)I_(J)=I_(J)(k₀−τ, k₁, . . . , k_(J)) the translation ofI_(J) along the spatial variable k₀ by the vector τ. The Euclidean normon the spectrum modulus is written:

$\begin{matrix}{{{{T_{\tau}I_{J}} - I_{p,J}}}^{2} = {\sum\limits_{k_{0},k_{1},{\ldots\; k_{J}}}^{\;}\left( {{I_{J}\left( {{k_{0} - \tau},k_{1},\ldots\;,k_{J}} \right)} - {I_{p,J}\left( {k_{0},k_{1},\ldots\;,k_{j}} \right)}} \right)^{2}}} & (10)\end{matrix}$

The sum is performed over all spatial indexes k₀ on the support ofI_(p,J) and over all other indexes k_(j) for 2≦j≦J. If the spatialsupport of all the patterns S_(p) is smaller than a size Δ, then one maychoose J as the integer part of log₂(Δ) and look for different patternson different spatial patches P_(i) of size Δ. On each such domain, thematching unit 81 computes the pattern index p_(i) and the translationτ_(i) which minimize the distance defined by (10), i.e.:

$\begin{matrix}{\left( {p_{i},\tau_{i}} \right) = {\arg\;{\min\limits_{\underset{\tau \in P_{i}}{1 \leq p \leq P}}{{{T_{\tau}I_{J}} - I_{p,J}}}^{2}}}} & (11)\end{matrix}$

For each patch index i, the pattern index p_(i) and its location τ_(i)in the input signal S(n) are provided at the output of the matching unit81 as part of the pattern position array if a precision condition isfulfilled, e.g. ∥T_(τ)I_(J)−I_(p,J)∥²≦ε where ε is a precision parameterset by the user.

FIG. 7 shows an exemplary configuration of a clustering apparatus whichprocesses a d-dimensional input signal S(n). A clustering systemdecomposes the signal into sub-parts that are homogeneous relatively tosome criteria. It provides in output the signal locations that belong tothe same cluster and a descriptor which characterizes each cluster.Image texture segmentation is an example of clustering problem.

The input signal S(n) is processed by the MMFB unit 85 which outputs aninvariant spectrum {I_(j)}_(1≦j≦J) as described above. The clusteringunit 86 finds spatial locations having similar invariant spectra andoutputs a cluster number for each spatial location as well as aninvariant spectrum descriptor. In an exemplary embodiment, the set ofspatial indexes k₀ of the coarsest scale spectrum I_(j)(k₀, k₁, . . . ,k_(J)) is segmented into several spatial patches {P_(i)}_(i). A patchP_(i) may be reduced to a single spatial location or could be arectangular region. For each spatial patch P_(i), we consider the arrayof coefficients {I_(J)(k₀, k₁, . . . , k_(J))}_(k) ₀ _(∈P) _(i) _(, k) ₁_(, . . . , k) _(J) for k₀ in P_(i) and all k₁, . . . , k_(J). Thesearrays for all i are distributed in C clusters identified by theclustering apparatus. For example, C being a parameter set by the user,the clustering unit 86 identifies a family of C centroids{Ī_(c)}_(1≦c≦C) which are arrays {Ī_(c)(k₀, k₁, . . . , k_(J))}_(k) ₀_(∈P) _(i) _(, k) ₁ _(, . . . , k) _(J) . In such example, theclustering also associates to each patch P_(i) the cluster index c(i)corresponding to the centroid Ī_(c(i)) which is the closest to thesignal spectrum {I_(J)(k₀, k₁, . . . , k_(J))}_(k) ₀ _(∈P) _(i) _(, k) ₁_(, . . . , k) _(J) in the patch P_(i).

The clustering may be performed with any state of the art process suchas, for example, an iterative K-mean clustering algorithm, computed witha Euclidean distance. The clustering unit 86 outputs the centroidvectors {Ī_(c)}_(1≦c≦C) and the cluster index c(i) for each patch P_(i).

A clustering process may also be applied to several component signals{S_(i)(n)}_(1≦i≦L) of dimension d, which are grouped into clusters ofsimilar signals. This type of clustering problem can be reduced to aclustering problem over a single signal that is constructed byaggregating all signals into a single signal. Each component signalS_(i)(n), or part of it, is thus interpreted as a patch of a compositesignal S(n)={S₁(n), . . . , S_(L)(n)}. The invariant spectra I_(i,J) ofthe component signals S_(i)(n) at the largest scale J are considered asthe previously mentioned spectrum patches. For example, the clusteringunit finds a family of C centroids {Ī_(c)}_(1≦c≦C) and it associates toeach patch S_(i) the cluster index c(i) corresponding to a centroidĪ_(c(i)) which is the closest to the signal spectrum I_(i,J).

FIG. 8 shows an exemplary configuration of a pattern classificationapparatus. The input signal S(n) is a d-dimensional signal with d≧1. Thepattern classification apparatus outputs a label q which is an estimatorof the class to which the input S(n) belongs. For example, if S(n) is animage of an object that belongs to an a priori defined set of Q objects,then there are Q possible classes and the label q may be chosen to be aninteger between 1 and Q. Digit recognition in images is an example wherethere are Q=10 classes corresponding to the digits 0-9.

The input signal S(n) is processed by the MMFB unit 90, which outputs amultiscale invariant spectrum {I_(j)}_(1≦j≦J) as described above. Aclassifier unit 91 processes the multiscale invariant spectrum to outputa class label q associated with the input signal S(n).

Any state of the art classifier may be used. In an exemplary embodiment,the classifier unit 91 comprises a support vector machine (SVM)operating on the vector corresponding to the coarsest invariant spectrumI _(J)(k₀, k₁, . . . , k_(J)). A conventional Gaussian kernel may beused in this SVM. Such a classifier unit is first trained on a sequenceof {tilde over (L)}≧2 modulus spectra I_(l,J) computed by means of theMMFB from a sequence of training signals {{tilde over(S)}_(l)}_(1≦l≦{tilde over (L)}) whose class labels are known. Thetraining is implemented off-line to obtain training parameters which arestored in a memory 92 to which the classifier unit 91 accesses toprocess the invariant spectrum I_(J)(k₀, k₁, . . . , k_(J)) of the inputsignal S(n). The SVM associates a class label q (1≦q≦Q) to the modulusspectrum I_(J) of a signal S(n) computed by the MMFB unit 90.

FIG. 9 shows an exemplary configuration of a pattern registrationapparatus making use of the MMFB. The input of the registrationapparatus comprises two signals S₁(n) and S₂(n). It outputs registrationparameters which specify a deformation operator which maps S₁(n) onto anapproximation of S₂(n).

In an exemplary implementation, this deformation is specified by adisplacement array τ[n] such that S₁(n−τ[n]) is most similar S₂(n). WhenS₁(n) and S₂(n) are two consecutive images in a video sequence, τ[n]specifies the optical flow. If S₁(n) and S₂(n) are two stereo images,τ[n] is referred to as the disparity, from which the depth of imagepoints in the scene can be computed. The measurement of suchdisplacements is also needed to register a medical signal S₁(n) over areference signal S₂(n) to find potential anomalies. In this context,S₁(n) and S₂(n) may be one-dimensional, two-dimensional,three-dimensional or four-dimensional signals (d=1, 2, 3 or 4).

The signals S₁(n) and S₂(n) are input respectively to two MMFB units 95,96 which output respective multiscale invariant spectrum arrays{I_(1,j)}_(1≦j≦J) and {I_(2,j)}_(1≦j≦J). The registration of S₁(n)relatively to S₂(n) is performed by computing the registration of themultiscale invariant spectrum {I_(1,j)} of S₁(n) on the multiscaleinvariant spectrum {I_(2,j)} of S₂(n).

In an exemplary embodiment, the MMFB units 95, 96 compute a spatialspectrum with a MFB obtained with convolutions along the spatialvariable k₀. The registration unit 97 computes for each j, adisplacement τ_(j)[k₀] such that I_(1,j)(k₀−τ_(j)[k₀], k₁, . . . ,k_(j)) is most similar to I_(2,j)(k₀, k₁, . . . , k_(j)). For example,the displacement field τ_(j) is computed in order to minimize theEuclidean distance) D_(1,2) ^(j)(τ_(j)):

$\begin{matrix}{{D_{1,2}^{j}\left( \tau_{j} \right)} = {\sum\limits_{k_{0},k_{1},\ldots\;,k_{j}}^{\;}\left( {{I_{1,j}\left( {{k_{0} - {\tau\left\lbrack k_{0} \right\rbrack}},k_{1},\ldots\;,k_{j}} \right)} - {I_{2,j}\left( {k_{0},k_{1},\ldots\;,k_{j}} \right)}} \right)^{2}}} & (12)\end{matrix}$

State of the art registration algorithms may be used by the unit 97 tocompute the multiscale displacements τ_(j)(k₀). For example, thedisplacements are computed using a coarse-to-fine process. Adisplacement τ_(J)[k₀] is first computed by minimizing the Euclideandistance D_(1,2) ^(J)(τ_(J)) at the coarsest scale j=J with any state ofthe art process. This displacement τ_(J)[k₀] is then used as an initialestimation to compute the displacement array τ_(J−1)[k₀] for the smallerindex j=J−1 by minimizing D_(1,2) ^(J−1)(τ_(J−1)). Iteratively reducingj leads to progressively finer displacement estimations until τ₀[k₀] isobtained at the final scale index j=0. The registration unit 97 thenoutputs the displacement array τ(n)=τ₀[k₀].

It will be appreciated that the embodiments described above are merelyillustrations of the invention disclosed herein and that variousmodifications can be made without departing from the scope as defined inthe appended claims.

For example, while the input signal I_(j−1)(k₀, . . . , k_(j−1)) of aj-th stage for j>1 is shown to include the processed real signalgenerated by each modulus processing unit 35, 48, 71 of the preceding(j−1)-th stage in the embodiments lo depicted in FIGS. 3-5, it is alsopossible, in certain instances, not to fill completely the decompositiontree. In other words, it is possible to provide that only some of themodulus processing units of a (j−1)-th stage contribute to the inputsignal of the next stage.

The invention claimed is:
 1. A digital filter bank having a number J ofstages, where J is an integer greater than one, wherein for each integerj such that 1≦j≦J, the j-th stage comprises: a plurality of filteringunits each receiving an input signal of the j-th stage, including alow-pass filtering unit and at least one band-pass filtering unit usingcomplex filtering coefficients; and following each band-pass filteringunit of the j-th stage, a respective modulus processing unit forgenerating a processed real signal as a function of squared moduli ofcomplex output values of said band-pass filtering unit, wherein theinput signal of the first stage is a digital signal supplied to thedigital filter bank, and wherein for 1<j≦J, the input signal of the j-thstage includes the processed real signal generated by at least onemodulus processing unit of the (j−1)-th stage.
 2. The digital filterbank as claimed in claim 1, wherein for 1<j≦J, the input signal of thej-th stage includes the processed real signal generated by each modulusprocessing unit of the (j−1)-th stage.
 3. The digital filter bank asclaimed in claim 1, wherein the low-pass filtering unit is arranged tocompute a convolution of the input signal of the j-th stage with realfiltering coefficients.
 4. The digital filter bank as claimed in claim1, wherein each filtering unit in at least one of the stages includes aconvolver for computing a convolution of the input signal of said one ofthe stages with filtering coefficients of said filtering unit, andwherein output values of said filtering unit are produced as asub-sampled signal from the computed convolution.
 5. The digital filterbank as claimed in claim 1, wherein each modulus processing unitfollowing a respective band-pass filtering unit using complex filteringcoefficients in at least one of the stages includes: a complex-to-realtransformer receiving the complex output values of said respectiveband-pass filtering unit and producing respective real values dependingon the squared moduli of said complex output values; and a post-filterfor low-pass filtering said real values and outputting the processedreal signal for said modulus processing unit.
 6. The digital filter bankas claimed in claim 1, wherein the filtering units of at least one ofthe stages include at least one further band-pass filtering unit usingreal high-pass filtering coefficients, followed by a processing unit forgenerating a processed real signal as a function of absolute values ofreal output values of said further band-pass filtering unit.
 7. Thedigital filter bank as claimed in claim 6, wherein the processing unitfollowing said further band-pass filtering unit includes a post-filterfor low-pass filtering said absolute values of the real output values.8. The digital filter bank as claimed in claim 1, wherein the low-passfiltering unit of said j-th stage uses real filtering coefficients h₀^(j)(m), and each band-pass filtering unit of said j-th stage usesfiltering coefficients h_(k) _(j) ^(j)(m) such that h_(k) _(j)^(j)(m)=h^(j)(m)·exp(iξ_(k) _(j) ^(j)·m) for a frequency offset valueξ_(k) _(j) ^(j), m being an index having a number d′ of integercomponents where d′ is a dimension of filtering of the input signal ofthe j-th stage, and h^(j)(m) designating coefficients of a low-passfilter.
 9. The digital filter bank as claimed in claim 1, wherein theinput signal of the j-th stage for each integer j such that 1≦j≦J isdefined over j variable indexes k₀, . . . , k_(j−1), where: k₀ is anindex having d integer components, with d≧1 being the dimension of thedigital signal supplied to the digital filter bank; and for 1≦l<j, k_(l)is an integer index associated with the plurality of filtering units ofthe l-th stage.
 10. The digital filter bank as claimed in claim 9,wherein for 1≦j≦J, each of the filtering units of the j-th stage isarranged to compute a convolution of the input signal of the j-th stagewith respective filtering coefficients along a single variable indexk_(l), with 0≦l<j.
 11. The digital filter bank as claimed in claim 9,wherein, for an integer l such that 1≦l<J, the filtering units of thel-th stage are arranged to compute convolutions of the input signal ofthe l-th stage with respective filtering coefficients along the variableindex k₀, wherein the filtering units of said l-th stage include: afirst band-pass filtering unit using filtering coefficients h₁ ^(l)(k₀);and at least one second band-pass filtering unit designated by arespective integer index k, using respective filtering coefficientsh_(k) ^(l)(k₀)=G_(k)[h₁ ^(l)(k₀)] where G_(k) is an operator acting ond-dimensional discrete signals and belonging to a group of operators.12. The digital filter bank as claimed in claim 11, wherein theband-pass filtering units of at least one j-th stage, with j>l, arearranged to compute respective convolutions of the input signal of thej-th stage with respective filtering coefficients along the variableindex k_(l).
 13. A pattern detection method, comprising: transforming adigital signal into a spectrum using a digital filter bank; and applyinga pattern matching process to at least part of said spectrum and to atleast one pre-stored spectrum associated with a respective pattern inorder to detect said pattern in the digital signal, wherein the digitalfilter bank has a number J of stages, where J is an integer greater thanone, wherein for each integer j such that 1≦j≦J, the j-th stagecomprises: a plurality of filtering units each receiving an input signalof the j-th stage, including a low-pass filtering unit and at least oneband-pass filtering unit using complex filtering coefficients; andfollowing each band-pass filtering unit of the j-th stage, a respectivemodulus processing unit for generating a processed real signal as afunction of squared moduli of complex output values of said band-passfiltering unit, wherein said digital signal is the input signal of thefirst stage of the digital filter bank, and wherein for 1<j≦J, the inputsignal of the j-th stage includes the processed real signal generated byat least one modulus processing unit of the (j−1)-th stage.
 14. Aclustering method, comprising: transforming a digital signal into aspectrum using a digital filter bank; and applying a clustering processto at least part of said spectrum to identify a plurality of clustersand associate each of a plurality of patches of said spectrum with arespective one of the clusters, wherein the patches correspond todifferent regions of the spectrum or to at least part of differentcomponent spectra if the digital signal is made of a plurality ofcomponent signals transformed into respective component spectra usingthe digital filter bank, wherein the digital filter bank has a number Jof stages, where J is an integer greater than one, wherein for eachinteger j such that 1≦j≦J, the j-th stage comprises: a plurality offiltering units each receiving an input signal of the j-th stage,including a low-pass filtering unit and at least one band-pass filteringunit using complex filtering coefficients; and following each band-passfiltering unit of the j-th stage, a respective modulus processing unitfor generating a processed real signal as a function of squared moduliof complex output values of said band-pass filtering unit, wherein saiddigital signal is the input signal of the first stage of the digitalfilter bank, and wherein for 1<j≦J, the input signal of the j-th stageincludes the processed real signal generated by at least one modulusprocessing unit of the (j−1)-th stage.
 15. A pattern classificationmethod, comprising: transforming a digital signal into a spectrum usinga digital filter bank; and applying a pattern classification process toat least part of said spectrum and to pre-stored training parameterscorresponding to a plurality of pattern classes in order to associatethe digital signal with one of said pattern classes, wherein the digitalfilter bank has a number J of stages, where J is an integer greater thanone, wherein for each integer j such that 1≦j≦J, the j-th stagecomprises: a plurality of filtering units each receiving an input signalof the j-th stage, including a low-pass filtering unit and at least oneband-pass filtering unit using complex filtering coefficients; andfollowing each band-pass filtering unit of the j-th stage, a respectivemodulus processing unit for generating a processed real signal as afunction of squared moduli of complex output values of said band-passfiltering unit, wherein said digital signal is the input signal of thefirst stage of the digital filter bank, and wherein for 1<j≦J, the inputsignal of the j-th stage includes the processed real signal generated byat least one modulus processing unit of the (j−1)-th stage.
 16. Apattern registration method, comprising: transforming a first digitalsignal into a first spectrum and a second digital signal into a secondspectrum using first and second digital filter banks, respectively; andapplying a pattern registration process to at least part of said firstand second spectra in order to identify displacements mapping the firstsignal onto the second signal, wherein each of the first and seconddigital filter banks has a number J of stages, where J is an integergreater than one, wherein for each integer j such that 1≦j≦J, the j-thstage of each of the first and second digital filter banks comprises: aplurality of filtering units each receiving an input signal of the j-thstage of said filter bank, including a low-pass filtering unit and atleast one band-pass filtering unit using complex filtering coefficients;and following each band-pass filtering unit of the j-th stage of saidfilter bank, a respective modulus processing unit for generating aprocessed real signal as a function of squared moduli of complex outputvalues of said band-pass filtering unit, wherein said first digitalsignal is the input signal of the first stage of the first digitalfilter bank, wherein said second digital signal is the input signal ofthe first stage of the second digital filter bank, and wherein for1<j≦J, the input signal of the j-th stage of each of the first andsecond digital filter banks includes the processed real signal generatedby at least one modulus processing unit of the (j−1)-th stage of saidfilter bank.